<?php
/**
* @file general.php
* Copyright (c) Friends Group. All rights reserved.
* $Id$
*
*/

require_once(realpath(dirname(__FILE__)) . '/../config.php');
require_once(realpath(dirname(__FILE__)) . '/../includes/common/ServiceFactory.php');
require_once(realpath(dirname(__FILE__)) . '/../includes/common/Validator.php');

Session::start();

$config = ServiceFactory::get("SystemConfiguration");
$authService = ServiceFactory::get("AuthenticationService");

if(!$authService -> isAuthenticated())
    Response::redirect(Response::addQueryArg(array("back" => $_SERVER['REQUEST_URI']), "./login.php"));

$user = $authService -> getCurrentUser();

if(!$authService -> isSuperAdministrator($user))
    die("Access denied!");

$currentFile = 'general.php';
$action = $_REQUEST['action'];
$referer = $_REQUEST['referer'];

if (isset($_POST['changeit']))
{
    $newAvatarPath = $_POST['avatar-path'];
    $smallAvatarSize = $_POST['small-avatar-size'];
    $mediumAvatarSize = $_POST['medium-avatar-size'];
    $largeAvatarSize = $_POST['large-avatar-size'];
    $siteTitle = $_POST['site-title'];
    $siteUrl = $_POST['site-url'];
    $emoticonPath = $_POST['emoticon-path'];
    $statusLength = $_POST['status-length'];
    $uploadAvatarSize = $_POST['upload-avatar-size'];
    $sessionTimeout = $_POST['session-timeout'];
    $inactiveTimeout = $_POST['inactive-timeout'];
    
    // kiem tra
    if($uploadAvatarSize <= 0)
        $_POST['user-can-upload-avatar'] = '1';
    
    if($uploadAvatarSize > 5 * 1024 * 1024)
        $uploadAvatarSize = 5 * 1024 * 1024;
    
    if(!Validator::validateNumber($statusLength) || !Validator::validateMaxLength($statusLength, 5))
        RedirectMessage::info("Status length không hợp lệ", "Error");
    
    // .... 
    // end
    
    try
    {
        if (!empty($newAvatarPath))
        {
            $config->updateSetting("avatar-path", $newAvatarPath);
            $updated = true;
        }
        if (!empty($smallAvatarSize))
        {
            $config->updateSetting("small-avatar-size", $smallAvatarSize);
            $updated = true;
        }
        if (!empty($mediumAvatarSize))
        {
            $config->updateSetting("medium-avatar-size", $mediumAvatarSize);
            $updated = true;
        }
        if (!empty($largeAvatarSize))
        {
            $config->updateSetting("large-avatar-size", $largeAvatarSize);
            $updated = true;
        }
        
        if (!empty($siteUrl))
        {
            $config->updateSetting("site-url", $siteUrl);
            $updated = true;
        }
        if (!empty($siteTitle))
        {
            $config->updateSetting("site-title", $siteTitle);
            $updated = true;
        }
        if (!empty($statusLength))
        {
            $config->updateSetting("status-length", $statusLength);
            $updated = true;
        }
        if (!empty($emoticonPath))
        {
            $config->updateSetting("emoticon-path", $emoticonPath);
            $updated = true;
        }
        if (!empty($sessionTimeout))
        {
            $config->updateSetting("session-timeout", $sessionTimeout);
            $updated = true;
        }
        if (!empty($inactiveTimeout))
        {
            $config->updateSetting("inactive-timeout", $inactiveTimeout);
            $updated = true;
        }
        
        $config->updateSetting("user-must-activate", isset($_POST['user-must-activate'])?"1":"0");
        if(isset($_POST['user-must-activate']))
            $config->updateSetting("activation-key-life", $_POST['activation-key-life']);
        
        $config->updateSetting("user-can-upload-avatar", isset($_POST['user-can-upload-avatar'])?"1":"0");
        if(isset($_POST['user-can-upload-avatar']))
            $config->updateSetting("upload-avatar-size", $uploadAvatarSize);
        
        $config->updateSetting("use-emoticon", isset($_POST['use-emoticon'])?"1":"0");
        
        if($updated)
            RedirectMessage::info("Cấu hình cập nhật thành công");
    } 
    catch(Exception $ex)
    {
        RedirectMessage::info($ex->getMessage(), "Error");
    }

    Response::redirect($referer);
}

include("admin-header.php");
include("menu-bar.php");

if(RedirectMessage::hasMessage())
{
    InfoArea::showInfo(RedirectMessage::getMessage(), RedirectMessage::getMessage('title'), RedirectMessage::getMessage('type'));
    RedirectMessage::removeMessage();
}

?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
    <input type="hidden" value="<?php echo ($_SERVER['REQUEST_URI']); ?>" name="referer" />
    <div class="ContentInner">
        <h2>Thông tin chung</h2>
        <div class="Entry">
            <?php nowchat::systemSetting("site-title", "Site title", "Title hiển thị", 45); ?>
        </div>
        <div class="Entry">
            <?php nowchat::systemSetting("site-url", "Site address(URL)", "Nhập vào địa chỉ của site nếu địa chỉ này không đúng với thư mục cài", 45); ?>
        </div>
        <h2>Tài khoản</h2>
        <div class="Entry">
            <?php nowchat::systemSetting("session-timeout", "Sesstion timeout", "Sau thời gian này user phải login lại, chỉ có tác dụng ở trang admin", 45); ?>
        </div>
        <div class="Entry">
            <?php nowchat::systemSetting("inactive-timeout", "Inactive timeout", "Sau khoảng thời gian này, hệ thống sẽ tự động logout các user không có liên lạc với server", 45); ?>
        </div>
        <div class="Entry">
            <label></label>
            <?php nowchat::checkboxSystemSetting("user-must-activate", "User phải kích hoạt tài khoản trước khi sử dụng"); ?>
            <div class="ActivationLife">
            <?php nowchat::systemSetting("activation-key-life", "", "Thời gian timeout của mã kích hoạt (giờ)"); ?>
            </div>
        </div>
        <div class="Entry">
            <label></label>
            <?php nowchat::checkboxSystemSetting("user-can-upload-avatar", "User thể upload avatar của mình"); ?>
            <div class="UploadAvatarSize">
            <?php nowchat::systemSetting("upload-avatar-size", "", "Kích thước upload tối đa cho avatar(bytes), Mặc định là 1.024.000 bytes", 20); ?>
            </div>
        </div>
        
        <h2>Avatars</h2>
        <div class="Entry">
            <?php nowchat::systemSetting("avatar-path", "Thư mục Avatar", "Thư mục chứa các avatars của user", 40); ?>
        </div>
        <div class="Entry">
            <?php nowchat::systemSetting("small-avatar-size", "Small avatar size", "Kích thước avatar nhỏ, mặc định 16x16", 20); ?>
        </div>
        <div class="Entry">
            <?php nowchat::systemSetting("medium-avatar-size", "Medium avatar size", "Kích thước avatar bình thường, mặc định 32x32", 20); ?>
        </div>
        <div class="Entry">
            <?php nowchat::systemSetting("large-avatar-size", "Large avatar size", "Kích thước avatar lớn, mặc định 64x64", 20); ?>
        </div>
        <h2>Status</h2>
        <div class="Entry">
            <?php nowchat::systemSetting("status-length", "Chiều dài tối đa của status", "Chiều dài tối đa của status", 20); ?>
        </div>
        <h2>Emoticons</h2>
        <div class="Entry">
            <label></label>
            <?php nowchat::checkboxSystemSetting("use-emoticon", "Sử dụng emoticon trong khi chat"); ?>
        </div>
        <div class="Entry">
            <?php nowchat::systemSetting("emoticon-path", "Thư mục Emoticon", "Thư mục chứa các smiley", 40); ?>
        </div>
        <div class="Command">
            <input type="submit" class="Button" name="changeit" id="changeit" value="Cập nhật"/>
        </div>
    </div>
    <script type="text/javascript">
        $(document).ready(function(){
            if(!$('input#user-can-upload-avatar')[0].checked)
                $('div.UploadAvatarSize').hide();
            
            if(!$('input#user-must-activate')[0].checked)
                $('div.ActivationLife').hide();
            
            $('input#user-must-activate').click(function(){
                $('div.ActivationLife').toggle();
            })
            
            $('input#user-can-upload-avatar').click(function(){
                $('div.UploadAvatarSize').toggle();
            })
        })
    </script>
</form>

<?php include("admin-footer.php") ?>
